package com.joycessh.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * @Author Joycessh
 * @Description SpringBoot 2.0 后靠实现WebMvcConfigurer接口来实现
 * 自定义一些Handler，Interceptor，ViewResolver，MessageConverter
 * SpringBoot2.0版本最低支持 JDK1.8环境
 * 在JDK1.8引入了特殊的关键字default，该关键字配置在interface接口的方法时子类可以不去实现该方法，相当于抽象类内已经实现的接口方法。
 * 通过实现WebMvcConfigurer接口，来添加对应的配置
 * @Date 4/18/19 9:13 PM
 */
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

    /**
     * CORS跨域请求 解决方法三  -->  @CrossOrigin(origins = "http://192.168.1.97:8080", maxAge = 3600)
     * @author Joycessh             @CrossOrigin这个注解在controller类中使用,
     * @param registry              这样就可以指定该controller中所有方法都能处理来自http:19.168.1.97:8080中的请求。
     * @return void
     * @date 4/18/19 9:40 PM
     */
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")   //addMapping中配置我们的路径。/**代表所有路径
//                .allowedOrigins("http://localhost:8081", "http://127.0.0.1:8081")
                .allowedOrigins("*")
                .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS", "HEAD")
                .allowCredentials(true).maxAge(3600);
    }
//    classpath: src/main/resources/
//    优先级顺序/META-INF/resources>resources>static>public
//    默认，CLASSPATH_RESOURCE_LOCATIONS[]: “classpath:/META-INF/resources/”, “classpath:/resources/”, “classpath:/static/”, “classpath:/public/”
//    默认，staticPathPatterns: /** ，说明在以上resources_locations,springboot在访问静态资源的时候只访问资源名称即可，localhost:8080/search/index.html
//    需要自定义文件夹资源访问时重写方法addResourceHandlers
//    @Override
//    public void addResourceHandlers(ResourceHandlerRegistry registry) {
//        //访问路径：localhost:8080/search/test/
//        registry.addResourceHandler("/test/**","").addResourceLocations("classpath:/test/");
//    }

//    配置拦截器
//    @Override
//    public void addInterceptors(InterceptorRegistry registry) {
//
//    }
}
